/**
 * jims
 */
package com.jims.master.modules.csm.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jims.master.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;

import java.beans.Transient;
import java.util.Date;

/**
 * 消耗品库存管理Entity
 * @author zhuq
 * @version 2017-03-10
 */
public class ExpStock extends DataEntity<ExpStock> {

    private static final long serialVersionUID = 1L;
    private String expCode;		// 消耗品编码
    private String infoId;		// 价表ID
    private String storageId;		// 库存单位ID
    private String storageName;  //供货库存单位
    private String storageNames;  //库存单位
    private String supplierJcs;		//供应商别名
    private String packageNum;		// 包装数量
    private String packageSpec;		// 包装规格
    private String packageUnits;		// 包装单位
    private String minSpec;		// 最小规格
    private String minUnits;		// 最小单位
    private Double purchasePrice;		// 进货价
    private String discount;		// 折扣
    private String batchNo;		// 批号
    private Date expireDate;		// 有效期
    private String sterilizationMethod;  //灭菌方式
    private String sterilizationBatchNo;  //灭菌批号
    private Date sterilizationDate;  //灭菌日期
    private Double quantity;		// 小包装库存量
    private String documentNo;		// 入库单号
    private String location;		// 货位
    private String expName;        //消耗品名称
    private String expType;        //消耗品类型
    private String importMasterId;   //入库单ID
    private String purchaseNumber;		// 采购序号
    private String expireDateGet;			//有效期
    private String supplierId;//供应商ID
    private String type;//扩展类型
    @Transient
    public String getExpireDateGet() {
        return expireDateGet;
    }
    @Transient
    public void setExpireDateGet(String expireDateGet) {
        this.expireDateGet = expireDateGet;
    }

    @Transient
    public String getPurchaseNumber() {
        return purchaseNumber;
    }
    @Transient
    public void setPurchaseOrder(String purchaseNumber) {
        this.purchaseNumber = purchaseNumber;
    }

    //扩展
    private Boolean batch;  //是否选中
    private ExpInoutClass expInoutClass;   //入出库类别
    private ExpNameDict expNameDict;
    private ExpSupplierCata expSupplierCata; //供货单位
    private ExpInfo expInfo;        // 消耗品信息
    private ExpDict expDict;       //消耗品字典表  --用于获取消耗品名称，页面显示
    private ExpStorageDept expStorageDept; // 厂家标识
    private ExpExportMaster expExportMaster; //出库主表 --用于批量入库时查询
    private ExpExportDetail expExportDetail;  //出库明细表  --用于批量入库时查询
    private ExpImportMaster expImportMaster;    //入库主表
    private ExpImportDetail expImportDetail;    //入库明细表
    private String storageIdOut; //出库单位--临时字段
    private String storageIdIn; //入库单位--临时字段
    private String importClass;//入库类型--临时字段
    private String expOutSpec; //发消耗临时字段，保存待发消耗的规格
    private String storageFrom;
    private String supplier;
    private String accountType; //付款方式
    private Date importDate;		// 入库日期
    private String minUnitsName;    //
    private String packageUnitsName;    //
    private String expNames;
    private String storageCode;

    private String treatId;
    private String ordersId;
    private String confirmFlag; //发放状态
    private String patientId;
    private String clinicId;

    @Transient
    public String getPatientId() {
        return patientId;
    }

    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    @Transient
    public String getClinicId() {
        return clinicId;
    }

    public void setClinicId(String clinicId) {
        this.clinicId = clinicId;
    }

    @Transient
    public String getConfirmFlag() {
        return confirmFlag;
    }

    public void setConfirmFlag(String confirmFlag) {
        this.confirmFlag = confirmFlag;
    }

    @Transient
    public String getTreatId() {
        return treatId;
    }

    public void setTreatId(String treatId) {
        this.treatId = treatId;
    }

    @Transient
    public String getOrdersId() {
        return ordersId;
    }

    public void setOrdersId(String ordersId) {
        this.ordersId = ordersId;
    }

    private ExpBuyPlan expBuyPlan;  //采购计划
    @Transient
    public String getExpNames() {
        return expNames;
    }
    @Transient
    public void setExpNames(String expNames) {
        this.expNames = expNames;
    }

    @Transient
    public String getMinUnitsName() {
        return minUnitsName;
    }
    @Transient
    public String getPackageUnitsName() {
        return packageUnitsName;
    }
    @Transient
    public void setPackageUnitsName(String packageUnitsName) {
        this.packageUnitsName = packageUnitsName;
    }

    @Transient
    public void setMinUnitsName(String minUnitsName) {
        this.minUnitsName = minUnitsName;
    }

    @Transient
    public Date getImportDate() {
        return importDate;
    }
    @Transient
    public void setImportDate(Date importDate) {
        this.importDate = importDate;
    }

    @Transient
    public String getAccountType() {
        return accountType;
    }
    @Transient
    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    public String getStorageName() {
        return storageName;
    }

    public void setStorageName(String storageName) {
        this.storageName = storageName;
    }

    @Transient
    public String getSupplierJcs() {
        return supplierJcs;
    }
    @Transient
    public void setSupplierJcs(String supplierJcs) {
        this.supplierJcs = supplierJcs;
    }
    @Transient
    public String getStorageNames() {
        return storageNames;
    }
    @Transient
    public void setStorageNames(String storageNames) {
        this.storageNames = storageNames;
    }

    public ExpNameDict getExpNameDict() {
        return expNameDict;
    }

    public void setExpNameDict(ExpNameDict expNameDict) {
        this.expNameDict = expNameDict;
    }

    @Transient
    public String getExpName() {
        return expName;
    }
    @Transient
    public void setExpName(String expName) {
        this.expName = expName;
    }
    @Transient
    public String getExpType() {
        return expType;
    }
    @Transient
    public void setExpType(String expType) {
        this.expType = expType;
    }

    public ExpInfo getExpInfo() {
        return expInfo;
    }

    public void setExpInfo(ExpInfo expInfo) {
        this.expInfo = expInfo;
    }

    @Transient
    public String getStorageIdOut() {
        return storageIdOut;
    }

    public void setStorageIdOut(String storageIdOut) {
        this.storageIdOut = storageIdOut;
    }

    @Transient
    public String getStorageIdIn() {
        return storageIdIn;
    }

    public void setStorageIdIn(String storageIdIn) {
        this.storageIdIn = storageIdIn;
    }

    @Transient
    public String getImportClass() {
        return importClass;
    }

    public void setImportClass(String importClass) {
        this.importClass = importClass;
    }

    public ExpStock() {
        super();
    }

    public ExpStock(String id){
        super(id);
    }

    @Length(min=1, max=32, message="消耗品编码长度必须介于 1 和 32 之间")
    public String getExpCode() {
        return expCode;
    }

    public void setExpCode(String expCode) {
        this.expCode = expCode;
    }

    @Length(min=1, max=64, message="expInfoID长度必须介于 1 和 64 之间")
    public String getInfoId() {
        return infoId;
    }

    public void setInfoId(String infoId) {
        this.infoId = infoId;
    }

    @Length(min=1, max=64, message="库存单位长度必须介于 1 和 64 之间")
    public String getStorageId() {
        return storageId;
    }

    public void setStorageId(String storageId) {
        this.storageId = storageId;
    }

    @Length(min=0, max=8, message="包装数量长度必须介于 0 和 8 之间")
    public String getPackageNum() {
        return packageNum;
    }

    public void setPackageNum(String packageNum) {
        this.packageNum = packageNum;
    }

    @Length(min=1, max=20, message="包装规格长度必须介于 1 和 20 之间")
    public String getPackageSpec() {
        return packageSpec;
    }

    public void setPackageSpec(String packageSpec) {
        this.packageSpec = packageSpec;
    }

    @Length(min=1, max=2, message="包装单位长度必须介于 1 和 2 之间")
    public String getPackageUnits() {
        return packageUnits;
    }

    public void setPackageUnits(String packageUnits) {
        this.packageUnits = packageUnits;
    }

    @Length(min=1, max=20, message="最小规格长度必须介于 1 和 20 之间")
    public String getMinSpec() {
        return minSpec;
    }

    public void setMinSpec(String minSpec) {
        this.minSpec = minSpec;
    }

    @Length(min=1, max=2, message="最小单位长度必须介于 1 和 2 之间")
    public String getMinUnits() {
        return minUnits;
    }

    public void setMinUnits(String minUnits) {
        this.minUnits = minUnits;
    }

    public Double getPurchasePrice() {
        return purchasePrice;
    }

    public void setPurchasePrice(Double purchasePrice) {
        this.purchasePrice = purchasePrice;
    }

    public String getDiscount() {
        return discount;
    }

    public void setDiscount(String discount) {
        this.discount = discount;
    }

    @Length(min=1, max=64, message="批号长度必须介于 1 和 64 之间")
    public String getBatchNo() {
        return batchNo;
    }

    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getExpireDate() {
        return expireDate;
    }

    public void setExpireDate(Date expireDate) {
        this.expireDate = expireDate;
    }

    @Length(min=0, max=8, message="小包装库存量长度必须介于 0 和 8 之间")
    public Double getQuantity() {
        return quantity;
    }

    public void setQuantity(Double quantity) {
        this.quantity = quantity;
    }

    @Length(min=1, max=64, message="入库单号长度必须介于 1 和 64 之间")
    public String getDocumentNo() {
        return documentNo;
    }

    public void setDocumentNo(String documentNo) {
        this.documentNo = documentNo;
    }

    @Length(min=1, max=64, message="货位长度必须介于 1 和 64 之间")
    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public ExpStorageDept getExpStorageDept() {
        return expStorageDept;
    }

    public void setExpStorageDept(ExpStorageDept expStorageDept) {
        this.expStorageDept = expStorageDept;
    }

    public String getImportMasterId() {
        return importMasterId;
    }

    public void setImportMasterId(String importMasterId) {
        this.importMasterId = importMasterId;
    }

    @Transient
    public Boolean getBatch() {
        return batch;
    }

    public void setBatch(Boolean batch) {
        this.batch = batch;
    }

    public void setPurchaseNumber(String purchaseNumber) {
        this.purchaseNumber = purchaseNumber;
    }

    public ExpInoutClass getExpInoutClass() {
        return expInoutClass;
    }

    public void setExpInoutClass(ExpInoutClass expInoutClass) {
        this.expInoutClass = expInoutClass;
    }

    public ExpSupplierCata getExpSupplierCata() {
        return expSupplierCata;
    }

    public void setExpSupplierCata(ExpSupplierCata expSupplierCata) {
        this.expSupplierCata = expSupplierCata;
    }

    @Transient
    public String getExpOutSpec() {
        return expOutSpec;
    }

    public void setExpOutSpec(String expOutSpec) {
        this.expOutSpec = expOutSpec;
    }

    public ExpExportMaster getExpExportMaster() {
        return expExportMaster;
    }

    public void setExpExportMaster(ExpExportMaster expExportMaster) {
        this.expExportMaster = expExportMaster;
    }

    public ExpExportDetail getExpExportDetail() {
        return expExportDetail;
    }

    public void setExpExportDetail(ExpExportDetail expExportDetail) {
        this.expExportDetail = expExportDetail;
    }

    public ExpDict getExpDict() {
        return expDict;
    }

    public void setExpDict(ExpDict expDict) {
        this.expDict = expDict;
    }

    public ExpImportMaster getExpImportMaster() {
        return expImportMaster;
    }

    public void setExpImportMaster(ExpImportMaster expImportMaster) {
        this.expImportMaster = expImportMaster;
    }

    public ExpImportDetail getExpImportDetail() {
        return expImportDetail;
    }

    public void setExpImportDetail(ExpImportDetail expImportDetail) {
        this.expImportDetail = expImportDetail;
    }

    @Transient
    public String getStorageFrom() {
        return storageFrom;
    }

    public void setStorageFrom(String storageFrom) {
        this.storageFrom = storageFrom;
    }

    @Transient
    public String getSupplier() {
        return supplier;
    }

    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }

    public ExpBuyPlan getExpBuyPlan() {
        return expBuyPlan;
    }

    public void setExpBuyPlan(ExpBuyPlan expBuyPlan) {
        this.expBuyPlan = expBuyPlan;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    public String getSterilizationMethod() {
        return sterilizationMethod;
    }

    public void setSterilizationMethod(String sterilizationMethod) {
        this.sterilizationMethod = sterilizationMethod;
    }

    public String getSterilizationBatchNo() {
        return sterilizationBatchNo;
    }

    public void setSterilizationBatchNo(String sterilizationBatchNo) {
        this.sterilizationBatchNo = sterilizationBatchNo;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getSterilizationDate() {
        return sterilizationDate;
    }

    public void setSterilizationDate(Date sterilizationDate) {
        this.sterilizationDate = sterilizationDate;
    }

    public String getStorageCode() {
        return storageCode;
    }

    public void setStorageCode(String storageCode) {
        this.storageCode = storageCode;
    }
}